﻿

// 等待页面加载完成后执行
layui.use('element', function () {
    var element = layui.element;

    var token = localStorage.getItem("token");

    var getStorageData = [];
    var getOutboundData = [];
    var getInventoryData = [];
    var getAllocateData = [];

    // 初始化图表
    var myChart = echarts.init(document.getElementById('myChart'));

 
    // 定义一个函数来获取所有数据
    function fetchData() {
        return new Promise((resolve, reject) => {
            $.ajax({
                url: '/Chart/GetStorage',
                type: "get",
                data: { Token: token },
                success: function (res) {
                    var storageData = JSON.parse(res);
                    var d = storageData.data
                    console.log('入库数据:', storageData.data);
                    resolve({ d });
                },
                error: function (err) {
                    reject('获取入库数据失败');
                }
            });
        }).then(({ d }) => {
            return new Promise((resolve, reject) => {
                $.ajax({
                    url: '/Chart/GetOutbound',
                    type: "get",
                    data: { Token: token },
                    success: function (res) {
                        var outboundData = JSON.parse(res);
                        var d1 = outboundData.data
                        console.log('出库数据:', outboundData.data);
                        resolve({ d, d1 });
                    },
                    error: function (err) {
                        reject('获取出库数据失败');
                    }
                });
            });
        }).then(({ d, d1 }) => {
            return new Promise((resolve, reject) => {
                $.ajax({
                    url: '/Chart/GetInventory',
                    type: "get",
                    data: { Token: token },
                    success: function (res) {
                        var inventoryData = JSON.parse(res);
                        var d2 = inventoryData.data;
                        console.log('盘点数据:', inventoryData.data);
                        resolve({ d, d1, d2 });
                    },
                    error: function (err) {
                        reject('获取盘点数据失败');
                    }
                });
            });
        }).then(({ d, d1, d2 }) => {
            return new Promise((resolve, reject) => {
                $.ajax({
                    url: '/Chart/GetAllocate',
                    type: "get",
                    data: { Token: token },
                    success: function (res) {
                        var allocateData = JSON.parse(res);
                        var d4 = allocateData.data;
                        console.log('调拨数据:', allocateData.data);
                        resolve({ d, d1, d2, d4 });
                    },
                    error: function (err) {
                        reject('获取调拨数据失败');
                    }
                });
            });
        });
    }


    // 获取数据并更新图表
    fetchData().then(({ d, d1, d2, d4 }) => {
        // 假设你的数据格式如下，按需调整：
        var storageValues = d.map(item => item.totalPrice1);  // 取出入库的值
        var outboundValues = d1.map(item => item.totalPrice2); // 取出出库的值
        var inventoryValues = d2.map(item => item.totalPrice3); // 取出盘点的值
        var allocateValues = d4.map(item => item.totalPrice4); // 取出调拨的值

        // 配置图表
        var option = {
            title: {
                text: '仓库操作统计'
            },
            tooltip: {},
            legend: {
                data: ['入库', '出库', '盘点', '调拨']
            },
            xAxis: {
                data: ['2024-11-5', '2024-11-10', '2024-11-15', '2024-11-20', '2024-11-25', '2024-11-30', '2024-12-7', '2024-12-20']
            },
            yAxis: {},
            series: [
                {
                    name: '入库',
                    type: 'line',
                    data: storageValues
                },
                {
                    name: '出库',
                    type: 'line',
                    data: outboundValues
                },
                {
                    name: '盘点',
                    type: 'line',
                    data: inventoryValues
                },
                {
                    name: '调拨',
                    type: 'line',
                    data: allocateValues
                }
            ]
        };

        // 使用 ECharts 渲染图表（假设你已经有了 chart 实例）
        myChart.setOption(option);
    }).catch((error) => {
        console.error('获取数据失败:', error);
    });


});